#pragma once
#include "WareTypes.h"
#include "IWareUnkown.h"
#include "WareEngineNameSpace.h"

BEGIN_WARE

enum ESceneNodeType
{
	/// Branch/transform/switch
	SCENENODE_BRANCH = 0,
	SCENENODE_TRANSFORMNODE,
	SCENENODE_SWITCH,

	SCENENODE_COUNT,
};

class IGraphic;
class ISceneNodeTransform;

class ISceneNode : public IWareUnkown 
{
public:
	virtual ~ISceneNode() {}

	virtual ISceneNodeTransform*	GetParent() = 0;
	virtual int32					GetNodeType() = 0;
	virtual uint32					GetID() = 0;

	virtual VBOOL					Update( uint32 uCurTime ) = 0;
	virtual VBOOL					Render( IGraphic* pGraphic, uint32 uCurTime ) = 0;
};

END_WARE
